X-Y PROBLEM ########### 对于 X-Y Problem 的意思如下:: 1. 有人想解决问题 X 2. 他觉得 Y 可能是解决 X 问题的方法 3. 但是他不知道 Y 应该怎么做 4. 于是他去问别人 Y 应该怎么做? .. note:: 简而言之,没有去问怎么解决问题 X,而是去问解决方案 Y 应该怎么去实现和操作。X-Y Problem 最大的严重的问题就是:在一个根本错误的方向上浪费他人大量的时间和精力! 示例 ==== 例子:: Q) 我怎么用 Shell 取得一个字符串的后 3 位字符? A1) 如果这个字符的变量是 $foo,你可以这样来 echo ${foo:-3} A2) 为什么你要取后 3 位?你想干什么? Q) 其实我就想取文件的扩展名 A1) 我靠,原来你要干这事,那我的方法不对,文件的扩展名并不保证一定有 3 位啊。 A1) 如果你的文件必然有扩展名的话,你可以这来样来:echo ${foo##*.} 例:: Q)问一下大家,我如何得到一个文件的大小 A1) size = `ls -l $file | awk ‘{print $5}’` Q) 哦,要是这个文件名是个目录呢? A2) 用 du 吧 A3) 不好意思,你到底是要文件的大小还是目录的大小?你到底要干什么? Q) 我想把一个目录下的每个文件的每个块(第一个块有 512 个字节)拿出来做 md5,并且计算他们的大小 …… A1) 哦,你可以使用 dd 吧。 A2) dd 不行吧。 A3) 你用 md5 来计算这些块的目的是什么?你究竟想干什么啊? Q) 其实,我想写一个网盘,对于小文件就直接传输了,对于大文件我想分块做增量同步。 A2) 用 rsync 啊,你妹! 参考 ==== * https://coolshell.cn/articles/10804.html